.6.14 删除分层索引中的指定层级
如果DataFrame表格的是分层索引,且有些索引层级需要删除,那么使用df.droplevel()
函数来操作要删除的索引层级,结构如下:
df.droplevel(level,axis=0)
level:指定要删除的索引层级。可以指定索引层级的标题, 也可以指定索引层级的位置,如果要指定多个层级,则将多个层级放置在列表中。
axis:指定删除索引的方向,0或index表示删除行方向的索引层级, 1或columns表示删除列方向的索引层级。
虽然可以删除指定的索引层级,但不能删除所有的索引层级,
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.6.13 层级交换.xlsx" , header =[ 0,1 ], index_col =[ 0,1 ])
df=df.droplevel( leve l=0, axis =0) #先删除地区
df=df.droplevel( level =0, axis =1) #再删除半年
print (df)
返回:
季度 | 1季度 | 2季度 | 3季度 | 4季度 |
---|---|---|---|---|
类型 | ||||
Maya-动画 | 11 | 20 | 39 | 17 |
keynote-办公 | 7 | 72 | 85 | 9 |
AI-设计 | 82 | 54 | 59 | 93 |
PS-设计 | 46 | 68 | 50 | 20 |
PPT-办公 | 75 | 83 | 95 | 12 |
Excel-办公 | 34 | 10 | 56 | 68 |
3DS MAX-动画 | 7 | 10 | 53 | 53 |
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.6.13 层级交换.xlsx" , header =[ 0,1 ], index_col =[ 0,1 ])
df=df.loc[:,( "上半年","1季度" )].droplevel( level =0) #Series数据
print (df)
返回:
类型
Maya-动画 | 11 |
keynote-办公 | 7 |
AI-设计 | 82 |
PS-设计 | 46 |
PPT-办公 | 75 |
Excel-办公 | 34 |
3DS MAX-动画 | 7 |
Name: (上半年, 1季度), dtype: int64